package com.cpms.web.service.impl;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cpms.web.entity.User;
import com.cpms.web.entity.param.UserParm;
import com.cpms.web.mapper.UserMapper;
import com.cpms.web.service.UserService;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

/**
 *继承 ServiceImpl可以使用Mybatis-PLus的通用CRUD方法，
 *impLements UserService的原因，是如果Mybatis-PLus的通用CRUD方法不够用，或者不符合开发需求的时候，需要扩展我们自己定义的方法
 *service表示把该类交给spring进行管理，我们就可以在其他类里面直接注入使用
 */


@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

    @Override
    public IPage<User>  list(UserParm parm) {
        //构造分页对象
        IPage<User> page = new Page<>();
        page.setPages(parm.getPageSize());
        page.setCurrent(parm.getCurrentPage());
        //构造查询条件
        QueryWrapper<User> query = new QueryWrapper<>();
        if(StringUtils.isNotEmpty(parm.getPhoneNumber())){
            query.lambda().like(User::getPhoneNumber,parm.getPhoneNumber());
        }
        if (StringUtils.isNotEmpty(parm.getUserName())){
            query.lambda().like(User::getUserName,parm.getUserName());
        }
        if (StringUtils.isNotEmpty(parm.getIdCard())){
            query.lambda().like(User::getIdCard,parm.getIdCard());
        }
        return this.baseMapper.selectPage(page,query);
    }
}
